package com.jzx.provider.cv.dto.result;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jzx.provider.cv.model.*;
import lombok.Builder;
import lombok.Data;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author daihuihui
 * @date 2019/2/7
 */
@Data
@Builder
public class CvResult implements Serializable {

    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    private String sid;

    /**
     * 简历名称
     */
    private String cvName;

    /**
     * 候选人姓名
     */
    private String name;

    /**
     * 手机号码
     */
    private String tel;

    /**
     * 电子邮件
     */
    private String email;

    /**
     * see {@link com.jzx.provider.cv.constants.Sex}
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Integer sex;

    /**
     * 生日，用于计算年龄
     */
    private Date birthDay;

    /**
     * 开始工作时间
     */
    private Date startWorkDate;

    /**
     * 目前状况
     */
    private CurrentInfoResult currentInfo;

    /**
     * see {@link com.jzx.provider.cv.constants.Education}
     */
    private Integer education;

    /**
     * see {@link com.jzx.provider.cv.constants.MaritalStatus}
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Integer maritalStatus;

    /**
     * 国籍
     */
    private String nationality;

    /**
     * 户籍
     */
    private String censusRegister;

    /**
     * 政治面貌
     */
    private String political;

    /**
     * 职业发展意向
     */
    private ForwardInfoResult forwardInfo;

    /**
     * 教育信息
     */
    @Builder.Default
    private List<EducationInfoResult> educationInfoList = new ArrayList<EducationInfoResult>();

    /**
     * 工作信息
     */
    @Builder.Default
    private List<WorkInfoResult> workInfoList = new ArrayList<>();

    /**
     * 项目信息
     */
    @Builder.Default
    private List<ProjectInfoResult> projectInfoList = new ArrayList<>();

    /**
     * 技能证书
     */
    @Builder.Default
    private List<CerInfoResult> cerInfoList = new ArrayList<>();

    /**
     * 个人简介
     */
    private String personal;

    /**
     * 附加信息
     */
    private String additional;

    /**
     * 专业技能
     */
    private String professional;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

}
